<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: jetson-utils/glCamera.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('glCamera_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">glCamera.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="glCamera_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * copy of this software and associated documentation files (the &quot;Software&quot;),</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to deal in the Software without restriction, including without limitation</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * Software is furnished to do so, subject to the following conditions:</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * DEALINGS IN THE SOFTWARE.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifndef __GL_CAMERA_H__</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define __GL_CAMERA_H__</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="group__OpenGL.html">   35</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__OpenGL.html#classglCamera">glCamera</a></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;{</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">   41</a></span>&#160;        <span class="keyword">enum</span> <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        {</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8745252e4ff0a3a08635c0f37a71e806">   43</a></span>&#160;                <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8745252e4ff0a3a08635c0f37a71e806">LookAt</a>,         </div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8ea08fddd9bed660854bb9e6942a75c0">   44</a></span>&#160;                <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8ea08fddd9bed660854bb9e6942a75c0">YawPitchRoll</a>,   </div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273aa71515b38b05be5b8baa702c27da3f1f">   45</a></span>&#160;                <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273aa71515b38b05be5b8baa702c27da3f1f">Ortho</a>           </div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        </div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keyword">static</span> <a class="code" href="group__OpenGL.html#classglCamera">glCamera</a>* <a class="code" href="group__OpenGL.html#a33384be13e585e4461af7f715a36668f">Create</a>( <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> mode, <span class="keywordtype">int</span> registerEvents=0 );</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keyword">static</span> <a class="code" href="group__OpenGL.html#classglCamera">glCamera</a>* <a class="code" href="group__OpenGL.html#a33384be13e585e4461af7f715a36668f">Create</a>( <span class="keywordtype">int</span> registerEvents=0 );</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="group__OpenGL.html#a4f5818f0d43ab3d97a316d4f5834fb63">~glCamera</a>();</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        </div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a71bf818dcda3515efe0632ed3144882e">Activate</a>();</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a71bf818dcda3515efe0632ed3144882e">Activate</a>( <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> mode );</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a57ff1e828c714a95750cd89c167e5d6b">Deactivate</a>();</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="group__OpenGL.html#ac8ab4555df063460fba8876dadd4062e">   91</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> <a class="code" href="group__OpenGL.html#ac8ab4555df063460fba8876dadd4062e">GetCameraMode</a>()<span class="keyword"> const                                         </span>{ <span class="keywordflow">return</span> mMode; }</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a347c1ccc0ad3315d4da0702a2faf09f6">   96</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a347c1ccc0ad3315d4da0702a2faf09f6">SetCameraMode</a>( <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> mode )                                    { mMode = mode; }</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="group__OpenGL.html#af47b7686cf77efa848eb434cfa3fd321">  101</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#af47b7686cf77efa848eb434cfa3fd321">SetFOV</a>( <span class="keywordtype">float</span> fov )                                                 { mFoV = fov; }</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a852623aaf193398d25db0a0e9a4dc629">  106</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a852623aaf193398d25db0a0e9a4dc629">SetClippingPlane</a>( <span class="keywordtype">float</span> near, <span class="keywordtype">float</span> far )                   { mNear = near; mFar = far; }</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a3a735b9285463eed8a02b8b902b32a07">  111</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a3a735b9285463eed8a02b8b902b32a07">SetNear</a>( <span class="keywordtype">float</span> near )                                                       { mNear = near; }</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a147284055bcb4ff3e2c8048b3022b104">  116</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a147284055bcb4ff3e2c8048b3022b104">SetFar</a>( <span class="keywordtype">float</span> far )                                                 { mFar = far; }</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a726cc60dfc9e44f840b2af99880e0e00">  121</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a726cc60dfc9e44f840b2af99880e0e00">SetEye</a>( <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z )                         { mEye[0] = x; mEye[1] = y; mEye[2] = z; }</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="group__OpenGL.html#aea368e16edee12cee5017f811b316194">  126</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#aea368e16edee12cee5017f811b316194">SetLookAt</a>( <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z )                      { mLookAt[0] = x; mLookAt[1] = y; mLookAt[2] = z; }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a62c720c85eeef476422bd7c8dbd9a710">  131</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a62c720c85eeef476422bd7c8dbd9a710">SetRotation</a>( <span class="keywordtype">float</span> yaw, <span class="keywordtype">float</span> pitch, <span class="keywordtype">float</span> roll )   { mRotation[0] = pitch; mRotation[1] = yaw; mRotation[2] = roll; }</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a734435b2f59ab105fe94ab77b82a3d85">  136</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a734435b2f59ab105fe94ab77b82a3d85">SetYaw</a>( <span class="keywordtype">float</span> yaw )                                                 { mRotation[1] = yaw; }</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a9f4db9c7aeb9c87b9e7b8f3f2ad80b91">  141</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a9f4db9c7aeb9c87b9e7b8f3f2ad80b91">SetPitch</a>( <span class="keywordtype">float</span> pitch )                                             { mRotation[0] = pitch; }</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="group__OpenGL.html#ae218a6c23442cec2e1ec00e69636ecfc">  146</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#ae218a6c23442cec2e1ec00e69636ecfc">SetRoll</a>( <span class="keywordtype">float</span> roll )                                                       { mRotation[2] = roll; }</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="group__OpenGL.html#a58f9840ebf78940daff3271506660a43">  151</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a58f9840ebf78940daff3271506660a43">SetMovementSpeed</a>( <span class="keywordtype">float</span> speed )                                     { mMovementSpeed = speed; }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="group__OpenGL.html#ad41d546593fd4db98970c184dae165dc">  156</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#ad41d546593fd4db98970c184dae165dc">SetMovementEnabled</a>( <span class="keywordtype">bool</span> enabled )                          { mMovementEnabled = enabled; }</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a501f30aa5dbfd57efde333c6d98f22cf">StoreDefaults</a>();</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#a0bf5909cb5b66ad34df86a0e85cfdf0c">Reset</a>();</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="group__OpenGL.html#ab023571c5b0b7d3927851cc0a4389b09">RegisterEvents</a>( uint32_t display=0 );</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        </div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <a class="code" href="group__OpenGL.html#classglCamera">glCamera</a>( <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> mode );</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordtype">bool</span> mouseInViewport() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keywordtype">bool</span> onEventLookAt( uint16_t msg, <span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b );</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keywordtype">bool</span> onEventYawPitchRoll( uint16_t msg, <span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b );</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">bool</span> onEvent( uint16_t msg, <span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">void</span>* user );</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">CameraMode</a> mMode;</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keywordtype">float</span> mNear;</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordtype">float</span> mFar;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordtype">float</span> mFoV;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordtype">float</span> mEye[3];          <span class="comment">// camera location</span></div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordtype">float</span> mRotation[3];     <span class="comment">// pitch/yaw/roll euler angles</span></div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="keywordtype">float</span> mLookAt[3];       <span class="comment">// look-at point</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keywordtype">float</span> mUp[3];           <span class="comment">// up direction</span></div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordtype">float</span> mDefaultEye[3];</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordtype">float</span> mDefaultRotation[3];</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keywordtype">float</span> mDefaultLookAt[3];</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">float</span> mPrevModelView[16];</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordtype">float</span> mPrevProjection[16];</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keywordtype">float</span> mMovementSpeed;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordtype">bool</span>  mMovementEnabled;</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        </div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <span class="keywordtype">void</span>* mDisplay;</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordtype">int</span>   mViewport[4];</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">bool</span>  mMouseActive;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;};</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__OpenGL_html_a29491e624fc3c4bd85def74db643f273"><div class="ttname"><a href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273">glCamera::CameraMode</a></div><div class="ttdeci">CameraMode</div><div class="ttdoc">Enum specifying the camera mode.</div><div class="ttdef"><b>Definition:</b> glCamera.h:41</div></div>
<div class="ttc" id="agroup__OpenGL_html_ae218a6c23442cec2e1ec00e69636ecfc"><div class="ttname"><a href="group__OpenGL.html#ae218a6c23442cec2e1ec00e69636ecfc">glCamera::SetRoll</a></div><div class="ttdeci">void SetRoll(float roll)</div><div class="ttdoc">Set the roll angle, in radians.</div><div class="ttdef"><b>Definition:</b> glCamera.h:146</div></div>
<div class="ttc" id="agroup__OpenGL_html_a3a735b9285463eed8a02b8b902b32a07"><div class="ttname"><a href="group__OpenGL.html#a3a735b9285463eed8a02b8b902b32a07">glCamera::SetNear</a></div><div class="ttdeci">void SetNear(float near)</div><div class="ttdoc">Set the distance to the near clipping plane.</div><div class="ttdef"><b>Definition:</b> glCamera.h:111</div></div>
<div class="ttc" id="agroup__OpenGL_html_a33384be13e585e4461af7f715a36668f"><div class="ttname"><a href="group__OpenGL.html#a33384be13e585e4461af7f715a36668f">glCamera::Create</a></div><div class="ttdeci">static glCamera * Create(CameraMode mode, int registerEvents=0)</div><div class="ttdoc">Create OpenGL camera object with the specified CameraMode.</div></div>
<div class="ttc" id="agroup__OpenGL_html_a4f5818f0d43ab3d97a316d4f5834fb63"><div class="ttname"><a href="group__OpenGL.html#a4f5818f0d43ab3d97a316d4f5834fb63">glCamera::~glCamera</a></div><div class="ttdeci">~glCamera()</div><div class="ttdoc">Free the camera.</div></div>
<div class="ttc" id="agroup__OpenGL_html_a29491e624fc3c4bd85def74db643f273aa71515b38b05be5b8baa702c27da3f1f"><div class="ttname"><a href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273aa71515b38b05be5b8baa702c27da3f1f">glCamera::Ortho</a></div><div class="ttdeci">@ Ortho</div><div class="ttdoc">Ortho (2D)</div><div class="ttdef"><b>Definition:</b> glCamera.h:45</div></div>
<div class="ttc" id="agroup__OpenGL_html_a9f4db9c7aeb9c87b9e7b8f3f2ad80b91"><div class="ttname"><a href="group__OpenGL.html#a9f4db9c7aeb9c87b9e7b8f3f2ad80b91">glCamera::SetPitch</a></div><div class="ttdeci">void SetPitch(float pitch)</div><div class="ttdoc">Set the pitch angle, in radians.</div><div class="ttdef"><b>Definition:</b> glCamera.h:141</div></div>
<div class="ttc" id="agroup__OpenGL_html_a62c720c85eeef476422bd7c8dbd9a710"><div class="ttname"><a href="group__OpenGL.html#a62c720c85eeef476422bd7c8dbd9a710">glCamera::SetRotation</a></div><div class="ttdeci">void SetRotation(float yaw, float pitch, float roll)</div><div class="ttdoc">Set the yaw/pitch/roll angles, in radians.</div><div class="ttdef"><b>Definition:</b> glCamera.h:131</div></div>
<div class="ttc" id="agroup__OpenGL_html_a58f9840ebf78940daff3271506660a43"><div class="ttname"><a href="group__OpenGL.html#a58f9840ebf78940daff3271506660a43">glCamera::SetMovementSpeed</a></div><div class="ttdeci">void SetMovementSpeed(float speed)</div><div class="ttdoc">Set the movement speed (in world units)</div><div class="ttdef"><b>Definition:</b> glCamera.h:151</div></div>
<div class="ttc" id="agroup__OpenGL_html_a147284055bcb4ff3e2c8048b3022b104"><div class="ttname"><a href="group__OpenGL.html#a147284055bcb4ff3e2c8048b3022b104">glCamera::SetFar</a></div><div class="ttdeci">void SetFar(float far)</div><div class="ttdoc">Set the distance to the far clipping plane.</div><div class="ttdef"><b>Definition:</b> glCamera.h:116</div></div>
<div class="ttc" id="agroup__OpenGL_html_af47b7686cf77efa848eb434cfa3fd321"><div class="ttname"><a href="group__OpenGL.html#af47b7686cf77efa848eb434cfa3fd321">glCamera::SetFOV</a></div><div class="ttdeci">void SetFOV(float fov)</div><div class="ttdoc">Set the field of view (FOV), in degrees.</div><div class="ttdef"><b>Definition:</b> glCamera.h:101</div></div>
<div class="ttc" id="agroup__OpenGL_html_a734435b2f59ab105fe94ab77b82a3d85"><div class="ttname"><a href="group__OpenGL.html#a734435b2f59ab105fe94ab77b82a3d85">glCamera::SetYaw</a></div><div class="ttdeci">void SetYaw(float yaw)</div><div class="ttdoc">Set the yaw angle, in radians.</div><div class="ttdef"><b>Definition:</b> glCamera.h:136</div></div>
<div class="ttc" id="agroup__OpenGL_html_aea368e16edee12cee5017f811b316194"><div class="ttname"><a href="group__OpenGL.html#aea368e16edee12cee5017f811b316194">glCamera::SetLookAt</a></div><div class="ttdeci">void SetLookAt(float x, float y, float z)</div><div class="ttdoc">Set the look-at point.</div><div class="ttdef"><b>Definition:</b> glCamera.h:126</div></div>
<div class="ttc" id="agroup__OpenGL_html_a0bf5909cb5b66ad34df86a0e85cfdf0c"><div class="ttname"><a href="group__OpenGL.html#a0bf5909cb5b66ad34df86a0e85cfdf0c">glCamera::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdoc">Reset camera orientation to defaults.</div></div>
<div class="ttc" id="agroup__OpenGL_html_a29491e624fc3c4bd85def74db643f273a8ea08fddd9bed660854bb9e6942a75c0"><div class="ttname"><a href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8ea08fddd9bed660854bb9e6942a75c0">glCamera::YawPitchRoll</a></div><div class="ttdeci">@ YawPitchRoll</div><div class="ttdoc">YawPitchRoll (first person.</div><div class="ttdef"><b>Definition:</b> glCamera.h:44</div></div>
<div class="ttc" id="agroup__OpenGL_html_classglCamera"><div class="ttname"><a href="group__OpenGL.html#classglCamera">glCamera</a></div><div class="ttdoc">OpenGL perspective camera supporting Look-At, Yaw/Pitch/Roll, and Ortho modes.</div><div class="ttdef"><b>Definition:</b> glCamera.h:35</div></div>
<div class="ttc" id="agroup__OpenGL_html_a57ff1e828c714a95750cd89c167e5d6b"><div class="ttname"><a href="group__OpenGL.html#a57ff1e828c714a95750cd89c167e5d6b">glCamera::Deactivate</a></div><div class="ttdeci">void Deactivate()</div><div class="ttdoc">Restore previous GL_PROJECTION and GL_MODELVIEW matrices.</div></div>
<div class="ttc" id="agroup__OpenGL_html_ac8ab4555df063460fba8876dadd4062e"><div class="ttname"><a href="group__OpenGL.html#ac8ab4555df063460fba8876dadd4062e">glCamera::GetCameraMode</a></div><div class="ttdeci">CameraMode GetCameraMode() const</div><div class="ttdoc">Get the camera mode.</div><div class="ttdef"><b>Definition:</b> glCamera.h:91</div></div>
<div class="ttc" id="agroup__OpenGL_html_a501f30aa5dbfd57efde333c6d98f22cf"><div class="ttname"><a href="group__OpenGL.html#a501f30aa5dbfd57efde333c6d98f22cf">glCamera::StoreDefaults</a></div><div class="ttdeci">void StoreDefaults()</div><div class="ttdoc">Store the current configuration as defaults.</div></div>
<div class="ttc" id="agroup__OpenGL_html_ad41d546593fd4db98970c184dae165dc"><div class="ttname"><a href="group__OpenGL.html#ad41d546593fd4db98970c184dae165dc">glCamera::SetMovementEnabled</a></div><div class="ttdeci">void SetMovementEnabled(bool enabled)</div><div class="ttdoc">Enable or disable movement from user input.</div><div class="ttdef"><b>Definition:</b> glCamera.h:156</div></div>
<div class="ttc" id="agroup__OpenGL_html_a71bf818dcda3515efe0632ed3144882e"><div class="ttname"><a href="group__OpenGL.html#a71bf818dcda3515efe0632ed3144882e">glCamera::Activate</a></div><div class="ttdeci">void Activate()</div><div class="ttdoc">Activate GL_PROJECTION and GL_MODELVIEW matrices.</div></div>
<div class="ttc" id="agroup__OpenGL_html_ab023571c5b0b7d3927851cc0a4389b09"><div class="ttname"><a href="group__OpenGL.html#ab023571c5b0b7d3927851cc0a4389b09">glCamera::RegisterEvents</a></div><div class="ttdeci">void RegisterEvents(uint32_t display=0)</div><div class="ttdoc">Register to recieve input events (enable movement)</div></div>
<div class="ttc" id="agroup__OpenGL_html_a726cc60dfc9e44f840b2af99880e0e00"><div class="ttname"><a href="group__OpenGL.html#a726cc60dfc9e44f840b2af99880e0e00">glCamera::SetEye</a></div><div class="ttdeci">void SetEye(float x, float y, float z)</div><div class="ttdoc">Set the eye position.</div><div class="ttdef"><b>Definition:</b> glCamera.h:121</div></div>
<div class="ttc" id="agroup__OpenGL_html_a852623aaf193398d25db0a0e9a4dc629"><div class="ttname"><a href="group__OpenGL.html#a852623aaf193398d25db0a0e9a4dc629">glCamera::SetClippingPlane</a></div><div class="ttdeci">void SetClippingPlane(float near, float far)</div><div class="ttdoc">Set the near/far z-clipping plane.</div><div class="ttdef"><b>Definition:</b> glCamera.h:106</div></div>
<div class="ttc" id="agroup__OpenGL_html_a347c1ccc0ad3315d4da0702a2faf09f6"><div class="ttname"><a href="group__OpenGL.html#a347c1ccc0ad3315d4da0702a2faf09f6">glCamera::SetCameraMode</a></div><div class="ttdeci">void SetCameraMode(CameraMode mode)</div><div class="ttdoc">Set the camera mode.</div><div class="ttdef"><b>Definition:</b> glCamera.h:96</div></div>
<div class="ttc" id="agroup__OpenGL_html_a29491e624fc3c4bd85def74db643f273a8745252e4ff0a3a08635c0f37a71e806"><div class="ttname"><a href="group__OpenGL.html#a29491e624fc3c4bd85def74db643f273a8745252e4ff0a3a08635c0f37a71e806">glCamera::LookAt</a></div><div class="ttdeci">@ LookAt</div><div class="ttdoc">LookAt (orbit)</div><div class="ttdef"><b>Definition:</b> glCamera.h:43</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_54a0acf6da04fe2ed9410b4c6369bc5d.html">jetson-utils</a></li><li class="navelem"><a class="el" href="glCamera_8h.html">glCamera.h</a></li>
    <li class="footer">Generated on Tue Mar 28 2023 14:27:58 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
